/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

/*
 * jifGestionMovimientos.java
 *
 * Created on 09-dic-2010, 10:48:58
 */

package GestionMovimientos;
import administracion.delegate.GestionPedidosDelegate;
import administracion.helper.ArrayListTableModel;
import administracion.helper.Listas;
import administracion.helper.Utiles_Importar;
import administracion.helper.Utiles_MensajesDialogo;
import administracion.helper.VerificarDatos;
import administracion.propiedades.Propiedades;
import java.awt.event.KeyEvent;
import java.io.File;
import java.math.BigDecimal;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import java.util.logging.Level;
import java.util.logging.Logger;
import javax.swing.JFileChooser;
import javax.swing.filechooser.FileNameExtensionFilter;
import javax.swing.table.TableModel;
import suministros.ejb30.TO.AlmacenTO;
import suministros.ejb30.TO.EmpresaTO;
import suministros.ejb30.TO.MovimientoTO;
import suministros.ejb30.TO.ProveedorTO;
import suministros.ejb30.TO.SubAlmacenTO;
import suministros.ejb30.TO.SuministroTO;
import suministros.ejb30.TO.TipoTO;
import suministros.ejb30.TO.ZonaTO;
import suministros.ejb30.entity.DetalleMovimiento;
import suministros.ejb30.entity.DetalleMovimientoPK;
import suministros.ejb30.entity.Movimiento;
import suministros.ejb30.entity.Parametros;
import suministros.ejb30.entity.ProveedorSuministro;
import suministros.ejb30.entity.ProveedorSuministroPK;
import suministros.ejb30.entity.Suministros;
import suministros.ejb30.entity.TipoCambioDiario;
import suministros.ejb30.helper.Utiles_Convertir;
import suministros.ejb30.helper.Utiles_Fecha;


/**
 *
 * @author Diana
 */
public class jifGestionMovimientos extends javax.swing.JInternalFrame {
    private int hojaExcel;
    private ArrayList dat;
    int filas;
    javax.swing.JComboBox combo;
    List<TipoTO> listatipos= new ArrayList<TipoTO>();
    List<TipoTO> listatipos2= new ArrayList<TipoTO>();
    List<TipoTO> listatipos3= new ArrayList<TipoTO>();
    List<TipoTO> listatipos4= new ArrayList<TipoTO>();
    List<TipoTO> listatipos5= new ArrayList<TipoTO>();
    List<ZonaTO> listazonas= new ArrayList<ZonaTO>();
    List<AlmacenTO> listaalmacen= new ArrayList<AlmacenTO>();
    List<SubAlmacenTO> listasubalmacen= new ArrayList<SubAlmacenTO>();
    List<EmpresaTO> empresas= new ArrayList<EmpresaTO>();
    //BigDecimal cambio;
    /** Creates new form jifGestionMovimientos */
    public jifGestionMovimientos() {
        initComponents();
        this.llenarComboAlmacen();
        this.llenarComboEmpresa();
        this.llenarComboSubAlmacen();
        this.llenarComboTipoDocumento();
        this.llenarComboTipoIngreso();
        this.llenarComboTipoMoneda();
        this.llenarComboTipoMovimiento();
        this.llenarComboTipoSalida();
        this.llenarComboZonas();
        this.inicializarTabla(this.jTable1);
    }
   public void cargarExcel(){
        hojaExcel=0;
        ArrayList identificadores = null;
        ArrayList clases = null;
        Utiles_Importar ui = new Utiles_Importar( new File( this.jtfDireccion.getText().trim() ) );


            ui.setNumColumnas( 8 ); //Definimos que son 9 columnas
            dat = ui.getDatosHoja( this.hojaExcel ); //Definimos obtener los datos de la hoja 0
            identificadores = ui.getIdentificadores();
            clases = ui.getClases();
            filas=ui.getNumFilas()-1;
            llenarTabla();
     }
      public void inicializarTabla(javax.swing.JTable table){
        List<ProveedorTO> proveedores= new ArrayList<ProveedorTO>();
        try {
            proveedores = GestionPedidosDelegate.getInstance().listaCosechador();
        } catch (Exception ex) {
            Logger.getLogger(jifGestionMovimientos.class.getName()).log(Level.SEVERE, null, ex);
        }
         List<ProveedorTO> proveedorestodos= new ArrayList<ProveedorTO>();
        try {
            proveedorestodos = GestionPedidosDelegate.getInstance().listaProveedor();
        } catch (Exception ex) {
            Logger.getLogger(jifGestionMovimientos.class.getName()).log(Level.SEVERE, null, ex);
        }
        List<SuministroTO> suministros=new ArrayList<SuministroTO>();
        try {
            suministros = GestionPedidosDelegate.getInstance().getListaSuministrosMateriaPrima();
        } catch (Exception ex) {
            Logger.getLogger(jifGestionMovimientos.class.getName()).log(Level.SEVERE, null, ex);
        }
       jTable1.setModel(new javax.swing.table.DefaultTableModel(
            new Object [][] {

            },
            new String [] {
                "Fecha", "Serie", "Numero", "Proveedor", "Tipo", "Entrada", "Salida", "Saldo", "Suministro","Proveedor",  "PrecioProv", "Cosechador", "Cosechador","PrecioCos"
            }
        ) {
            Class[] types = new Class [] {
                java.lang.String.class, java.lang.String.class, java.lang.String.class, java.lang.String.class, java.lang.String.class, BigDecimal.class, BigDecimal.class, BigDecimal.class, java.lang.Object.class,java.lang.Object.class, BigDecimal.class, java.lang.Boolean.class, java.lang.Object.class, BigDecimal.class
            };
            boolean[] canEdit = new boolean [] {
                true, true, true, true, true, true, true, true, true, true,true, true, true,true
            };

            public Class getColumnClass(int columnIndex) {
                return types [columnIndex];
            }

            public boolean isCellEditable(int rowIndex, int columnIndex) {
                return canEdit [columnIndex];
            }
        });
          try{
                   this.llenar_comboSumi(jTable1,jTable1.getColumnModel().getColumn(8),suministros);
                   this.llenar_combo(jTable1,jTable1.getColumnModel().getColumn(12),proveedores);
                   this.llenar_comboProv(jTable1,jTable1.getColumnModel().getColumn(9),proveedorestodos);
                   this.llenar_fTexto(table,table.getColumnModel().getColumn(0),"Fecha");
                   this.llenar_fTexto(table,table.getColumnModel().getColumn(1),"Serie");
                   this.llenar_fTexto(table,table.getColumnModel().getColumn(2),"Numero");
                   this.llenar_fTexto(table,table.getColumnModel().getColumn(3),"Proveedor");
                   this.llenar_fTexto(table,table.getColumnModel().getColumn(4),"Tipo");
                   this.llenar_fTexto(table,table.getColumnModel().getColumn(5),"Entrada");
                   this.llenar_fTexto(table,table.getColumnModel().getColumn(6),"Salida");
                   this.llenar_fTexto(table,table.getColumnModel().getColumn(7),"Saldo");
                   this.llenar_fTexto(table,table.getColumnModel().getColumn(10),"PrecioProv");
                   this.llenar_CheckBox(table,table.getColumnModel().getColumn(11),false);
                   this.llenar_fTexto(table,table.getColumnModel().getColumn(13),"PrecioCos");

          }catch(Exception e ){}
    }
      public void llenarTabla(){

           for(int i=0; i<dat.size(); i++){
                   ArrayList datos= (ArrayList)(dat.get(i));
                   ((javax.swing.table.DefaultTableModel)jTable1.getModel()).addRow(new Object[]{datos.get(0).toString(),datos.get(1).toString(),
                   datos.get(2).toString(),datos.get(3).toString(),datos.get(4).toString(),datos.get(5).toString(),datos.get(6).toString(),
                   datos.get(7).toString(),"","","0.00",false,"","0.00"});
           }

      }
public void capturarProveedor(String prov){
    int selec= combo.getSelectedIndex();
                    int fila=jTable1.getSelectedRow();
                    String sumi= jTable1.getValueAt(fila, 8).toString();

                    String s=Listas.getSuministroDescripcion(sumi).getId_suministro();
                    String p=Listas.getProveedorRazon(prov).getCodProveedor();
                    ProveedorSuministro prosumi= new ProveedorSuministro();
                    ProveedorSuministro prosumi2= new ProveedorSuministro();
                    ProveedorSuministroPK prosumipk= new ProveedorSuministroPK(p, s);
                    prosumi.setProveedorSuministroPK(prosumipk);

                    BigDecimal precio=BigDecimal.ZERO;

                    try {
                         prosumi2=GestionPedidosDelegate.getInstance().getDatosProveedorSuministro(prosumi);
                    } catch (Exception ex) {
                        Logger.getLogger(jifGestionMovimientos.class.getName()).log(Level.SEVERE, null, ex);
                    }
                    if(prosumi2!=null){
                        precio=prosumi2.getPrecio();
                    }
                    else{
                        precio=BigDecimal.ZERO;
                    }
                    jTable1.setValueAt(precio, fila, 10);
}
public void llenar_comboSumi(javax.swing.JTable tabla,javax.swing.table.TableColumn columna,List<SuministroTO> suministros){

       combo=new javax.swing.JComboBox();
       combo.setMaximumRowCount(20);
       combo.addItemListener((new java.awt.event.ItemListener(){
        	public void itemStateChanged(java.awt.event.ItemEvent ev){
        		//hacer(ev);
        	}
        }));
        try{
            for(int i=0;i<suministros.size();i++){
                combo.addItem(suministros.get(i).getDescripcion());
            }
            combo.setSelectedIndex(0);
        }catch(Exception e){}
        columna.setCellEditor(new javax.swing.DefaultCellEditor(combo));
        javax.swing.table.DefaultTableCellRenderer renderer =
                new javax.swing.table.DefaultTableCellRenderer();
        renderer.setToolTipText("Eliga el suministro");
        columna.setCellRenderer(renderer);
    }
     public void llenar_combo(javax.swing.JTable tabla,javax.swing.table.TableColumn columna,List<ProveedorTO> proveedores){

       combo=new javax.swing.JComboBox();
       combo.setMaximumRowCount(20);
       combo.addItemListener((new java.awt.event.ItemListener(){
        	public void itemStateChanged(java.awt.event.ItemEvent ev){
        		//hacer(ev);
        	}
        }));
        try{
            for(int i=0;i<proveedores.size();i++){
                combo.addItem(proveedores.get(i).getRazon());
            }
            combo.setSelectedIndex(0);
        }catch(Exception e){}
        columna.setCellEditor(new javax.swing.DefaultCellEditor(combo));
        javax.swing.table.DefaultTableCellRenderer renderer =
                new javax.swing.table.DefaultTableCellRenderer();
        renderer.setToolTipText("Eliga el proveedor");
        columna.setCellRenderer(renderer);
    }
      public void llenar_comboProv(javax.swing.JTable tabla,javax.swing.table.TableColumn columna,List<ProveedorTO> proveedores){

       combo=new javax.swing.JComboBox();
       combo.setMaximumRowCount(20);
       
       combo.addKeyListener((new java.awt.event.KeyListener(){
                
            public void keyPressed(java.awt.event.KeyEvent ev){
                 if (ev.getKeyCode() == KeyEvent.VK_ENTER ){
                   /* int selec= combo.getSelectedIndex();
                    int fila=jTable1.getSelectedRow();
                    String sumi= jTable1.getValueAt(fila, 8).toString();
                    String prov= jTable1.getValueAt(fila, 9).toString();
                    
                    String s=Listas.getSuministroDescripcion(sumi).getId_suministro();
                    String p=Listas.getProveedorRazon(prov).getCodProveedor();
                    System.out.println("audio"+s);
                    System.out.println("ee"+p);
                    ProveedorSuministro prosumi= new ProveedorSuministro();
                    ProveedorSuministro prosumi2= new ProveedorSuministro();
                    ProveedorSuministroPK prosumipk= new ProveedorSuministroPK(p, s);
                    prosumi.setProveedorSuministroPK(prosumipk);

                    BigDecimal precio=BigDecimal.ZERO;

                    try {
                         prosumi2=GestionPedidosDelegate.getInstance().getDatosProveedorSuministro(prosumi);
                    } catch (Exception ex) {
                        Logger.getLogger(jifGestionMovimientos.class.getName()).log(Level.SEVERE, null, ex);
                    }
                    if(prosumi2!=null){
                        precio=prosumi2.getPrecio();
                    }
                    else{
                        precio=BigDecimal.ZERO;
                    }
                    jTable1.setValueAt(precio, fila, 10);*/
                    }
             }

            public void keyTyped(KeyEvent e) {
              
            }

            public void keyReleased(KeyEvent e) {
               
            }
        }));

       combo.addItemListener((new java.awt.event.ItemListener(){
                
        	public void itemStateChanged(java.awt.event.ItemEvent ev){
                    if(combo.getSelectedIndex()>0){
                    capturarProveedor(ev.getItem().toString());
                    }
                    
        	}
        }));
        try{
            for(int i=0;i<proveedores.size();i++){
                combo.addItem(proveedores.get(i).getRazon());
            }
            combo.setSelectedIndex(-1);
        }catch(Exception e){}
        columna.setCellEditor(new javax.swing.DefaultCellEditor(combo));
        javax.swing.table.DefaultTableCellRenderer renderer =
                new javax.swing.table.DefaultTableCellRenderer();
        renderer.setToolTipText("Eliga el proveedor");
        columna.setCellRenderer(renderer);
    }
public void llenar_fTexto(javax.swing.JTable tabla,javax.swing.table.TableColumn columna,String cade){
        String[][]datos = null;
        javax.swing.JFormattedTextField  ftexto =null;
        javax.swing.text.MaskFormatter m = null;
        try{
            ftexto.setText(cade);
        }catch(Exception e ){
            System.out.println("Error al crear la mascara");
        }
        columna.setCellEditor(new javax.swing.DefaultCellEditor(ftexto));
        javax.swing.table.DefaultTableCellRenderer renderer =
                new javax.swing.table.DefaultTableCellRenderer();
        renderer.setToolTipText("Ingrese dato");
        columna.setCellRenderer(renderer);
    }
 public void llenar_CheckBox(javax.swing.JTable tabla,javax.swing.table.TableColumn columna,boolean ban){
        javax.swing.JCheckBox jchk = null;
        try{
            jchk =  new javax.swing.JCheckBox();
            jchk.setSelected(ban);
        }catch(Exception e ){
            System.out.println("Error al crear checkbox");
        }
        columna.setCellEditor(new javax.swing.DefaultCellEditor(jchk));
        javax.swing.table.DefaultTableCellRenderer renderer =
                new javax.swing.table.DefaultTableCellRenderer();
        renderer.setToolTipText("Seleccione si desea cosechador");
        columna.setCellRenderer(renderer);
    }
  /*public boolean guardarMovimientos() throws Exception{

     boolean estado=false;
      String fecha= this.jTable1.getValueAt(0, 0).toString();
      TipoCambioDiario tipcambio=GestionPedidosDelegate.getInstance().getTipoCambio(fecha);
        if(tipcambio!=null){
           cambio=tipcambio.getTipoCambio();
           estado=true;
         }
        else{
          estado=false;
        }
        if(estado){
             for(int i=0; i<filas; i++){
                 String mov= this.jTable1.getValueAt(i, 4).toString().trim();
                 if(tipcambio!=null){
                   cambio=tipcambio.getTipoCambio();
                   estado=true;
                 }
                else{
                  estado=false;
                }
                 System.out.println(mov.substring(0,4));
                 if(mov.substring(0,4).compareTo("COMP")==0){
                    insertarIngreso(i,mov);
                 }
                 else{
                    if(mov.substring(0,4).compareTo("DESC")==0){
                    this.insertarSalida(i,mov);
                    this.insertarIngreso(i,mov);
                    }
                    else{
                    this.insertarSalida(i,mov);
                    }
                 }

            }
    
            }
        
        return estado;

 }*/
  public boolean guardarMovimientos() throws Exception{
     boolean estado=true;
             for(int i=0; i<filas; i++){
                 String fec= this.jTable1.getValueAt(i, 0).toString().trim();
                 TipoCambioDiario tipcambiof=GestionPedidosDelegate.getInstance().getTipoCambio(fec);
                 if(tipcambiof==null){
                     estado=false;
                     throw new Exception ("No se ha registrado un tipo de cambio para la fecha: "+fec);
                 }
             }
        if(estado){
           for(int i=0; i<filas; i++){
                 String mov= this.jTable1.getValueAt(i, 4).toString().trim();

                     System.out.println(mov.substring(0,4));
                     if(mov.substring(0,4).equalsIgnoreCase("COMP")){
                        insertarIngreso(i,mov);
                     }
                     else{
                        if(mov.substring(0,4).equalsIgnoreCase("DESC")){
                        this.insertarSalida(i,mov);
                        this.insertarIngreso(i,mov);
                        }
                        else{
                        this.insertarSalida(i,mov);
                        }
                     }
            }
        }
        return estado;
        
 }
 public void insertarIngreso(int fila, String operacion) throws Exception{
        String codigo=null;
        boolean oper=true;
        List detalle_ingresoTra = new ArrayList(1);
        Parametros param = Listas.getParametrosID("SU1");
        String ano = param.getParam1();
        String mes = param.getParam2();
        String jtfecha=this.jTable1.getValueAt(fila, 0).toString();

        String serie=this.jTable1.getValueAt(fila, 1).toString();
        String numero=this.jTable1.getValueAt(fila, 2).toString();
        String cosechador=this.jTable1.getValueAt(fila, 12).toString();
        String proveedor=this.jTable1.getValueAt(fila, 9).toString();
        String suministro=null;
        if(operacion.substring(0,4).equalsIgnoreCase("DESC")){
            String obj=this.jTable1.getValueAt(fila,8).toString();
            SuministroTO sumi=Listas.getSuministroDescripcion(obj);
            suministro= sumi.getIddescarte();
            if(suministro.compareTo("")==0){
                oper=false;
            }
        }
        else{
          String obj=this.jTable1.getValueAt(fila,8).toString();
          SuministroTO sumi=Listas.getSuministroDescripcion(obj);
          suministro= sumi.getId_suministro();
        }
         
        BigDecimal ingreso= new BigDecimal(0);
        BigDecimal precio= new BigDecimal(0);
        precio= new BigDecimal(this.jTable1.getValueAt(fila,10).toString());
        BigDecimal precioCose= BigDecimal.ZERO;
        if(new Boolean(this.jTable1.getValueAt(fila, 11).toString())){
           precioCose= new BigDecimal(this.jTable1.getValueAt(fila,13).toString());
        }
        Date fecha = new Date(VerificarDatos.verificaFecha(jtfecha).getTime());
        Utiles_Fecha utf = new Utiles_Fecha(fecha);
        if ((!utf.getAnio().equalsIgnoreCase(ano)) || (!utf.getMes().equalsIgnoreCase(mes))) {
        
        }
        else{
        Movimiento mov= new Movimiento();
        mov.setAnio(ano);
        mov.setFecha(fecha);
        mov.setMes(mes);
        mov.setEmpresa(Utiles_Convertir.convertirToEmpresa_EmpresaTO(empresas.get(0)));
        mov.setTipoMovimiento(Utiles_Convertir.convertirToTipo_TipoTO(this.listatipos3.get(0)));
        mov.setIdAlmacen(Utiles_Convertir.convertirTOAlmacen_AlmacenTO(this.listaalmacen.get(0)));
        mov.setIdZona(Utiles_Convertir.convertirToZona_ZonaTO(this.listazonas.get(0)));
        mov.setIdSubalmacen(Utiles_Convertir.convertirTosubAlmacen_subAlmacenTO(this.listasubalmacen.get(0)));
        mov.setObservacion("");
        mov.setNumero(numero);
        mov.setSerie(serie);
        mov.setIsProduccion(true);
        mov.setTipoDocumento(Utiles_Convertir.convertirToTipo_TipoTO(this.listatipos2.get(2)));

        if(new Boolean(this.jTable1.getValueAt(fila, 11).toString()))
        mov.setCosechador(Listas.getCosechadorRazon(cosechador).getCodProveedor());
        ProveedorTO p= new ProveedorTO();
        p=Listas.getProveedorRazon(proveedor);
        if(p==null){
            mov.setProveedor("44615358");
        }
        else{
            mov.setProveedor(p.getCodProveedor());
        }
        mov.setMac(Propiedades.getMac());
        mov.setUsuario(Propiedades.getUsuario());
        if(operacion.substring(0,4).equalsIgnoreCase("DESC")){
            mov.setTipoIngreso(Utiles_Convertir.convertirToTipo_TipoTO(this.listatipos.get(6)));
            StringBuffer strbuf = new StringBuffer( this.jTable1.getValueAt(fila, 6).toString().trim());
            strbuf.setCharAt( strbuf.indexOf( "," ), '.' );
            ingreso= new BigDecimal(strbuf.toString().trim());
        }
        else{
            mov.setTipoIngreso(Utiles_Convertir.convertirToTipo_TipoTO(this.listatipos.get(0)));
            StringBuffer strbuf = new StringBuffer( this.jTable1.getValueAt(fila, 5).toString().trim());
            strbuf.setCharAt( strbuf.indexOf( "," ), '.' );
            ingreso= new BigDecimal(strbuf.toString().trim());
        }
        
        int correlativo=1;

          DetalleMovimiento detall = new DetalleMovimiento();
          DetalleMovimientoPK detallepk= new DetalleMovimientoPK(correlativo, "");
          detall.setDetalleMovimientoPK(detallepk);
          detall.setCantidad(ingreso);
          detall.setCcosto("");
          detall.setCodInv("");
          detall.setCodPresupuestal("");
          detall.setFecha(fecha);
          detall.setIdSuministro(new Suministros(suministro));
          detall.setId_unidad_organica("");
          TipoCambioDiario tipcambiof=GestionPedidosDelegate.getInstance().getTipoCambio(jtfecha);
          detall.setPrecio(precio.multiply(tipcambiof.getTipoCambio()));
          detall.setCambio_moneda(tipcambiof.getTipoCambio());
          if(new Boolean(this.jTable1.getValueAt(fila, 10).toString()))
          detall.setPrecioCosechador(precioCose);

          detall.setTipoMovimiento(Utiles_Convertir.convertirToTipo_TipoTO(this.listatipos3.get(0)));
          detall.setValor(detall.getCantidad().multiply(detall.getPrecio()));
          detall.setIdZona(Utiles_Convertir.convertirToZona_ZonaTO(this.listazonas.get(0)));
          detall.setEstado_ubicacion(new Integer(0));
          detall.setTipo_moneda(Utiles_Convertir.convertirToTipo_TipoTO(this.listatipos4.get(1)).getIdTablaTipo());
          correlativo++;
          detalle_ingresoTra.add(detall);
         if(oper){
              codigo=GestionPedidosDelegate.getInstance().insertarIngresoCarga(mov, detall, 1);
         }

        }
 }
 public void insertarSalida(int fila, String operacion) throws Exception{
        String codigo=null;
        List detalle_ingresoTra = new ArrayList(1);
        Parametros param = Listas.getParametrosID("SU1");
        String ano = param.getParam1();
        String mes = param.getParam2();
        String jtfecha=this.jTable1.getValueAt(fila, 0).toString();
        String serie=this.jTable1.getValueAt(fila, 1).toString();
        String numero=this.jTable1.getValueAt(fila, 2).toString();
        String cosechador=this.jTable1.getValueAt(fila, 12).toString();
        String proveedor=this.jTable1.getValueAt(fila, 9).toString();
        String suministro=this.jTable1.getValueAt(fila,8).toString();
        StringBuffer strbuf = new StringBuffer( this.jTable1.getValueAt(fila, 6).toString().trim());
        System.out.println("<<"+strbuf);
        strbuf.setCharAt( strbuf.indexOf( "," ), '.' );
        BigDecimal ingreso= new BigDecimal(strbuf.toString().trim());
        BigDecimal precio= new BigDecimal(this.jTable1.getValueAt(fila,10).toString());

        BigDecimal precioCose= BigDecimal.ZERO;
        if(new Boolean(this.jTable1.getValueAt(fila, 11).toString())){
           precioCose= new BigDecimal(this.jTable1.getValueAt(fila,13).toString());
        }


        Date fecha = new Date(VerificarDatos.verificaFecha(jtfecha).getTime());
        Utiles_Fecha utf = new Utiles_Fecha(fecha);
        if ((!utf.getAnio().equalsIgnoreCase(ano)) || (!utf.getMes().equalsIgnoreCase(mes))) {
        Utiles_MensajesDialogo.mensajeError("La fecha debe coincidir con el mes actual: " + ano + " - " + mes);
        }
        else{
        Movimiento mov= new Movimiento();
        mov.setAnio(ano);
        mov.setFecha(fecha);
        mov.setMes(mes);
        mov.setEmpresa(Utiles_Convertir.convertirToEmpresa_EmpresaTO(empresas.get(0)));
        mov.setTipoMovimiento(Utiles_Convertir.convertirToTipo_TipoTO(this.listatipos3.get(1)));
        mov.setIdAlmacen(Utiles_Convertir.convertirTOAlmacen_AlmacenTO(this.listaalmacen.get(0)));
        mov.setIdZona(Utiles_Convertir.convertirToZona_ZonaTO(this.listazonas.get(0)));
        mov.setIdSubalmacen(Utiles_Convertir.convertirTosubAlmacen_subAlmacenTO(this.listasubalmacen.get(0)));
        mov.setObservacion("");
        mov.setNumero(numero);
        mov.setSerie(serie);
        mov.setIsProduccion(true);
        mov.setTipoDocumento(Utiles_Convertir.convertirToTipo_TipoTO(this.listatipos2.get(2)));
        if(new Boolean(this.jTable1.getValueAt(fila, 11).toString()))
        mov.setCosechador(Listas.getCosechadorRazon(cosechador).getCodProveedor());

        ProveedorTO p= new ProveedorTO();
        p=Listas.getProveedorRazon(proveedor);
        if(p==null){
            mov.setProveedor("44615358");
        }
        else{
            mov.setProveedor(p.getCodProveedor());
        }
        
        mov.setMac(Propiedades.getMac());
        mov.setUsuario(Propiedades.getUsuario());
        System.out.println("<<<"+operacion);
        mov.setTipoIngreso(Utiles_Convertir.convertirToTipo_TipoTO(Listas.getTipo_porNombre(operacion.substring(0,4))));
        

        int correlativo=1;

          DetalleMovimiento detall = new DetalleMovimiento();
          DetalleMovimientoPK detallepk= new DetalleMovimientoPK(correlativo, "");
          detall.setDetalleMovimientoPK(detallepk);

          detall.setCantidad(ingreso);
          detall.setCcosto("");
          detall.setCodInv("");
          detall.setCodPresupuestal("");
          detall.setFecha(fecha);
          detall.setIdSuministro(new Suministros((Listas.getSuministroDescripcion(suministro).getId_suministro())));
          detall.setId_unidad_organica("");
          SuministroTO su=GestionPedidosDelegate.getInstance().getSuministroEmpresa(Listas.getSuministroDescripcion(suministro).getId_suministro(), "001");
          detall.setPrecio(su.getPrecioPromedio());

          if(new Boolean(this.jTable1.getValueAt(fila, 11).toString()))
          detall.setPrecioCosechador(precioCose);
          
          detall.setTipoMovimiento(Utiles_Convertir.convertirToTipo_TipoTO(this.listatipos3.get(1)));
          detall.setValor(detall.getCantidad().multiply(detall.getPrecio()));
          detall.setIdZona(Utiles_Convertir.convertirToZona_ZonaTO(this.listazonas.get(0)));
          detall.setEstado_ubicacion(new Integer(0));
          detall.setTipo_moneda(Utiles_Convertir.convertirToTipo_TipoTO(this.listatipos4.get(0)).getIdTablaTipo());
          detall.setCambio_moneda(BigDecimal.ONE);
          correlativo++;
          detalle_ingresoTra.add(detall);

          codigo=GestionPedidosDelegate.getInstance().insertarIngresoCarga(mov, detall, 1);

        }
 }
 public boolean verificarDatos(){
     boolean oper=true;
     for(int i=0; i<filas; i++){
         if(oper){
              try {
                String mov = this.jTable1.getValueAt(i, 4).toString().trim();
                 String jtfecha = this.jTable1.getValueAt(i, 0).toString();

               
                 if (jtfecha.compareTo("") == 0) {
                         int j=i+1;
                        Utiles_MensajesDialogo.mensajeAlerta("Se tiene que ingresar una fecha de operacion en el detalle "+ j);
                        oper = false;
                    }
                Date fecha = new Date(VerificarDatos.verificaFecha(jtfecha).getTime());
                Utiles_Fecha utf = new Utiles_Fecha(fecha);
                Parametros param = Listas.getParametrosID("SU1");
                String ano = param.getParam1();
                String mes = param.getParam2();
                if ((!utf.getAnio().equalsIgnoreCase(ano)) || (!utf.getMes().equalsIgnoreCase(mes))) {
                int j=i+1;
                Utiles_MensajesDialogo.mensajeError("La fecha debe coincidir con el mes actual: " + ano + " - " + mes +"en el detalle "+ j+ " - "+jtfecha);
                oper = false;
                }

                String serie = this.jTable1.getValueAt(i, 1).toString();
                if (serie.compareTo("") == 0) {
                        int j=i+1;
                        Utiles_MensajesDialogo.mensajeAlerta("Se tiene que ingresar el numero de serie en el detalle "+j+ " - "+jtfecha );
                        oper = false;
                    }
                String numero = this.jTable1.getValueAt(i, 2).toString();
                if (numero.compareTo("") == 0) {
                         int j=i+1;
                        Utiles_MensajesDialogo.mensajeAlerta("Se tiene que ingresar el numero en el detalle "+ j+ " - "+jtfecha);
                        oper = false;
                    }
                String proveedor = this.jTable1.getValueAt(i, 9).toString();
                 if (proveedor.compareTo("") == 0) {
                      int j=i+1;
                        Utiles_MensajesDialogo.mensajeAlerta("Se tiene que elegir un proveedor en el detalle "+ j+ " - "+jtfecha);
                        oper = false;
                    }
                try{
                    BigDecimal precio = new BigDecimal(this.jTable1.getValueAt(i, 10).toString());
                }
                catch(Exception e){
                    int j=i+1;
                     Utiles_MensajesDialogo.mensajeAlerta("Se debe ingresar un precio valido en el detalle "+ j+ " - "+jtfecha);
                    oper=false;
                }


              
                String suministro = null;
                if (mov.substring(0, 4).compareToIgnoreCase("DESC")==0) {
                    String obj = this.jTable1.getValueAt(i, 8).toString();
                    SuministroTO sumi = Listas.getSuministroDescripcion(obj);
                    suministro = sumi.getIddescarte();
                    if (suministro.compareTo("") == 0) {
                         int j=i+1;
                        Utiles_MensajesDialogo.mensajeAlerta("Se tiene que elegir un suministro que tenga descarte  en el detalle "+ j+ " - "+jtfecha);
                        oper = false;
                    }
                } else {
                    String obj = this.jTable1.getValueAt(i, 8).toString();
                    SuministroTO sumi = Listas.getSuministroDescripcion(obj);
                    suministro = sumi.getId_suministro();
                    if (suministro.compareTo("") == 0) {
                         int j=i+1;
                        Utiles_MensajesDialogo.mensajeAlerta("Se tiene que elegir un suministro en el detalle "+ j+ " - "+jtfecha);
                        oper = false;
                    }
                }
                
                BigDecimal ingreso = new BigDecimal(0);
               
                BigDecimal precioCose = BigDecimal.ZERO;
                if (new Boolean(this.jTable1.getValueAt(i, 11).toString())) {
                    try{
                    precioCose = new BigDecimal(this.jTable1.getValueAt(i, 13).toString());
                    }
                    catch(Exception e){
                         int j=i+1;
                         Utiles_MensajesDialogo.mensajeAlerta("Se debe ingresar un precio valido de cosechador en el detalle "+ j+ " - "+jtfecha);
                        oper=false;
                    }
                    String cosechador = this.jTable1.getValueAt(i, 12).toString();
                    if (cosechador.compareTo("") == 0) {
                        int j=i+1;
                        Utiles_MensajesDialogo.mensajeAlerta("Se tiene que elegir un cosechador en el detalle "+ j+ " - "+jtfecha);
                        oper = false;
                    }

                 }

                 if(mov.substring(0,4).compareToIgnoreCase("COMP")==0){
                    try{
                       StringBuffer strbuf = new StringBuffer(this.jTable1.getValueAt(i, 5).toString().trim());
                        strbuf.setCharAt(strbuf.indexOf(","), '.');
                        ingreso = new BigDecimal(strbuf.toString().trim());
                    }
                    catch(Exception e){
                        e.printStackTrace();
                         int j=i+1;
                        Utiles_MensajesDialogo.mensajeAlerta("Se tiene  que ingresar una cantidad en el detalle "+ j+ " - "+jtfecha);
                        oper = false;
                    }

                 }
                 else{
                    if(mov.substring(0,4).compareToIgnoreCase("DESC")==0){
                        try{
                       StringBuffer strbuf = new StringBuffer(this.jTable1.getValueAt(i, 6).toString().trim());
                        strbuf.setCharAt(strbuf.indexOf(","), '.');
                        ingreso = new BigDecimal(strbuf.toString().trim());
                        }
                        catch(Exception e){
                            e.printStackTrace();
                             int j=i+1;
                            Utiles_MensajesDialogo.mensajeAlerta("Se tiene  que ingresar una cantidad en el detalle "+ j+ " - "+jtfecha);
                            oper = false;
                        }
                        
                    }
                    else{
                    try{
                       StringBuffer strbuf = new StringBuffer(this.jTable1.getValueAt(i, 6).toString().trim());
                        strbuf.setCharAt(strbuf.indexOf(","), '.');
                        ingreso = new BigDecimal(strbuf.toString().trim());
                        }
                        catch(Exception e){
                             int j=i+1;
                            Utiles_MensajesDialogo.mensajeAlerta("Se tiene  que ingresar una cantidad en el detalle "+ j+ " - "+jtfecha);
                            oper = false;
                        }
                    }
                 }
                
            } catch (Exception ex) {
                int j=i+1;
                Utiles_MensajesDialogo.mensajeAlerta("Falta seleccionar un dato correcto  en el detalle "+ j);
                oper=false;
            }
         }
         else{
             
         }
    }
       return oper;
 }

    /** This method is called from within the constructor to
     * initialize the form.
     * WARNING: Do NOT modify this code. The content of this method is
     * always regenerated by the Form Editor.
     */
    @SuppressWarnings("unchecked")
    // <editor-fold defaultstate="collapsed" desc="Generated Code">//GEN-BEGIN:initComponents
    private void initComponents() {

        cboBeanBindingTipo1 = new administracion.BeanBinding.CboBeanBindingTipo();
        cboBeanBindingZona1 = new administracion.BeanBinding.CboBeanBindingZona();
        cboBeanBindingSubAlmacen1 = new administracion.BeanBinding.CboBeanBindingSubAlmacen();
        cboBeanBindingAlmacen1 = new administracion.BeanBinding.cboBeanBindingAlmacen();
        cboBeanBindingEmpresa1 = new administracion.BeanBinding.CboBeanBindingEmpresa();
        cboBeanBindingTipo2 = new administracion.BeanBinding.CboBeanBindingTipo();
        cboBeanBindingTipo3 = new administracion.BeanBinding.CboBeanBindingTipo();
        cboBeanBindingTipo4 = new administracion.BeanBinding.CboBeanBindingTipo();
        cboBeanBindingTipo5 = new administracion.BeanBinding.CboBeanBindingTipo();
        jScrollPane1 = new javax.swing.JScrollPane();
        jTable1 = new javax.swing.JTable();
        jLabel4 = new javax.swing.JLabel();
        jtfDireccion = new javax.swing.JTextField();
        jbtnSeleccion = new javax.swing.JButton();
        jbtnMigrar = new javax.swing.JButton();
        jbtnAceptar = new javax.swing.JButton();
        jbtnCancelar = new javax.swing.JButton();

        setIconifiable(true);
        setResizable(true);
        setTitle("Gestion de Movimiento Materia Prima");

        jTable1.setAutoCreateRowSorter(true);
        jTable1.setModel(new javax.swing.table.DefaultTableModel(
            new Object [][] {

            },
            new String [] {
                "Fecha", "Serie", "Numero", "Proveedor", "Tipo", "Entrada", "Salida", "Saldo", "Suministro", "Proveedor", "PrecioProv", "Cosechador", "Cosechador", "PrecioCos"
            }
        ) {
            Class[] types = new Class [] {
                java.lang.String.class, java.lang.String.class, java.lang.String.class, java.lang.String.class, java.lang.String.class, java.lang.Double.class, java.lang.Double.class, java.lang.Double.class, java.lang.Object.class, java.lang.Object.class, java.lang.Double.class, java.lang.Boolean.class, java.lang.Object.class, java.lang.Double.class
            };

            public Class getColumnClass(int columnIndex) {
                return types [columnIndex];
            }
        });
        jScrollPane1.setViewportView(jTable1);

        jLabel4.setFont(new java.awt.Font("Arial", 1, 12));
        jLabel4.setText("UBICACION:");

        jtfDireccion.setFont(new java.awt.Font("Arial", 0, 12));

        jbtnSeleccion.setFont(new java.awt.Font("Arial", 1, 12));
        jbtnSeleccion.setText("SELECCIONAR ARCHIVO");
        jbtnSeleccion.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jbtnSeleccionActionPerformed(evt);
            }
        });

        jbtnMigrar.setFont(new java.awt.Font("Arial", 1, 12)); // NOI18N
        jbtnMigrar.setIcon(new javax.swing.ImageIcon(getClass().getResource("/iconoscomb/16x16ozygen/actions/document_export.png"))); // NOI18N
        jbtnMigrar.setText("MIGRAR DE EXCEL");
        jbtnMigrar.setEnabled(false);
        jbtnMigrar.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jbtnMigrarActionPerformed(evt);
            }
        });

        jbtnAceptar.setFont(new java.awt.Font("Arial", 1, 12)); // NOI18N
        jbtnAceptar.setIcon(new javax.swing.ImageIcon(getClass().getResource("/iconoscomb/16x16ozygen/actions/button_ok.png"))); // NOI18N
        jbtnAceptar.setText("ACEPTAR");
        jbtnAceptar.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jbtnAceptarActionPerformed(evt);
            }
        });
        jbtnAceptar.addKeyListener(new java.awt.event.KeyAdapter() {
            public void keyPressed(java.awt.event.KeyEvent evt) {
                jbtnAceptarKeyPressed(evt);
            }
        });

        jbtnCancelar.setFont(new java.awt.Font("Arial", 1, 12));
        jbtnCancelar.setIcon(new javax.swing.ImageIcon(getClass().getResource("/iconoscomb/16x16ozygen/actions/button_cancel.png"))); // NOI18N
        jbtnCancelar.setText("CERRAR");
        jbtnCancelar.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jbtnCancelarActionPerformed(evt);
            }
        });

        javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane());
        getContentPane().setLayout(layout);
        layout.setHorizontalGroup(
            layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(layout.createSequentialGroup()
                .addContainerGap()
                .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                    .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, layout.createSequentialGroup()
                        .addComponent(jbtnAceptar)
                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
                        .addComponent(jbtnCancelar)
                        .addGap(341, 341, 341))
                    .addGroup(layout.createSequentialGroup()
                        .addComponent(jScrollPane1, javax.swing.GroupLayout.DEFAULT_SIZE, 887, Short.MAX_VALUE)
                        .addContainerGap())
                    .addGroup(layout.createSequentialGroup()
                        .addComponent(jLabel4)
                        .addGap(18, 18, 18)
                        .addComponent(jtfDireccion, javax.swing.GroupLayout.PREFERRED_SIZE, 504, javax.swing.GroupLayout.PREFERRED_SIZE)
                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, 140, Short.MAX_VALUE)
                        .addComponent(jbtnSeleccion))
                    .addGroup(layout.createSequentialGroup()
                        .addComponent(jbtnMigrar, javax.swing.GroupLayout.PREFERRED_SIZE, 169, javax.swing.GroupLayout.PREFERRED_SIZE)
                        .addContainerGap(728, Short.MAX_VALUE))))
        );
        layout.setVerticalGroup(
            layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(layout.createSequentialGroup()
                .addGap(13, 13, 13)
                .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                    .addComponent(jLabel4)
                    .addComponent(jtfDireccion, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                    .addComponent(jbtnSeleccion))
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                .addComponent(jbtnMigrar)
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                .addComponent(jScrollPane1, javax.swing.GroupLayout.DEFAULT_SIZE, 413, Short.MAX_VALUE)
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                    .addComponent(jbtnCancelar)
                    .addComponent(jbtnAceptar))
                .addContainerGap())
        );

        pack();
    }// </editor-fold>//GEN-END:initComponents

    private void jbtnSeleccionActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jbtnSeleccionActionPerformed
        JFileChooser jfc = new JFileChooser();
        jfc.setAcceptAllFileFilterUsed(false);
        FileNameExtensionFilter fnef= new FileNameExtensionFilter("XLS & ODS","XLS","ODS");
        jfc.setMultiSelectionEnabled( false );
        jfc.setFileFilter(fnef);
        int returnVal = jfc.showOpenDialog( this );
        if( returnVal == JFileChooser.APPROVE_OPTION ){
            this.jtfDireccion.setText( jfc.getSelectedFile().toString() );
            this.jbtnMigrar.setEnabled(true);

        }else{
            this.jtfDireccion.setText( "" );
        }
    }//GEN-LAST:event_jbtnSeleccionActionPerformed

    private void jbtnMigrarActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jbtnMigrarActionPerformed
        this.cargarExcel();
}//GEN-LAST:event_jbtnMigrarActionPerformed

    private void jbtnAceptarActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jbtnAceptarActionPerformed
        try {
            if(this.verificarDatos()){
                if(guardarMovimientos()){
                   Utiles_MensajesDialogo.mensajeExito();
                   this.inicializarTabla(jTable1);
                }
                else{
                  Utiles_MensajesDialogo.mensajeError("No se ha establecido un tipo de cambio en las fechas");
                }
            }
            
            
        } catch (Exception ex) {
             Utiles_MensajesDialogo.mensajeError("No se pudo completar la transaccion\n"+ex.getMessage());
            Logger.getLogger(jifGestionMovimientos.class.getName()).log(Level.SEVERE, null, ex);
        }
}//GEN-LAST:event_jbtnAceptarActionPerformed

    private void jbtnAceptarKeyPressed(java.awt.event.KeyEvent evt) {//GEN-FIRST:event_jbtnAceptarKeyPressed
        if (evt.getKeyCode() == KeyEvent.VK_ENTER ){
            this.jbtnAceptar.doClick();
        }
}//GEN-LAST:event_jbtnAceptarKeyPressed

    private void jbtnCancelarActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jbtnCancelarActionPerformed
        int res = javax.swing.JOptionPane.showConfirmDialog( this,"Esta seguro de salir?",
                "Confirmar",javax.swing.JOptionPane.YES_NO_OPTION );
        if(res==javax.swing.JOptionPane.YES_OPTION){
            this.dispose();
        }
}//GEN-LAST:event_jbtnCancelarActionPerformed


    // Variables declaration - do not modify//GEN-BEGIN:variables
    private administracion.BeanBinding.cboBeanBindingAlmacen cboBeanBindingAlmacen1;
    private administracion.BeanBinding.CboBeanBindingEmpresa cboBeanBindingEmpresa1;
    private administracion.BeanBinding.CboBeanBindingSubAlmacen cboBeanBindingSubAlmacen1;
    private administracion.BeanBinding.CboBeanBindingTipo cboBeanBindingTipo1;
    private administracion.BeanBinding.CboBeanBindingTipo cboBeanBindingTipo2;
    private administracion.BeanBinding.CboBeanBindingTipo cboBeanBindingTipo3;
    private administracion.BeanBinding.CboBeanBindingTipo cboBeanBindingTipo4;
    private administracion.BeanBinding.CboBeanBindingTipo cboBeanBindingTipo5;
    private administracion.BeanBinding.CboBeanBindingZona cboBeanBindingZona1;
    private javax.swing.JLabel jLabel4;
    private javax.swing.JScrollPane jScrollPane1;
    private javax.swing.JTable jTable1;
    private javax.swing.JButton jbtnAceptar;
    private javax.swing.JButton jbtnCancelar;
    private javax.swing.JButton jbtnMigrar;
    private javax.swing.JButton jbtnSeleccion;
    private javax.swing.JTextField jtfDireccion;
    // End of variables declaration//GEN-END:variables

      private void llenarComboTipoIngreso() {
        this.listatipos = null;
        List listaTipos_cbo1 = this.cboBeanBindingTipo1.getLista();
        listaTipos_cbo1.clear();
        try
        {
          listatipos = Listas.getTipo_porTabla("tipo_ingreso");
          this.cboBeanBindingTipo1.setLista(listatipos);

        } catch (Exception ex) {
          Utiles_MensajesDialogo.mensajeAlerta("Error al obtener Ingresos\n" + ex.getMessage());
          ex.printStackTrace();
          Logger.getLogger(jifIngresosAlmacen.class.getName()).log(Level.SEVERE, null, ex);
        }
      }
       private void llenarComboTipoSalida() {
        this.listatipos5 = null;
        List listaTipos_cbo1 = this.cboBeanBindingTipo5.getLista();
        listaTipos_cbo1.clear();
        try
        {
          listatipos5 = Listas.getTipo_porTabla("Tipo_Salida");
          this.cboBeanBindingTipo5.setLista(listatipos5);

        } catch (Exception ex) {
          Utiles_MensajesDialogo.mensajeAlerta("Error al obtener Ingresos\n" + ex.getMessage());
          ex.printStackTrace();
          Logger.getLogger(jifIngresosAlmacen.class.getName()).log(Level.SEVERE, null, ex);
        }
      }
      private void llenarComboTipoDocumento() {
        this.listatipos2 = null;
        List listaTipos_cbo2 = this.cboBeanBindingTipo2.getLista();
        listaTipos_cbo2.clear();
        try
        {
          listatipos2 = Listas.getTipo_porTabla("tipo_documento");
          this.cboBeanBindingTipo2.setLista(listatipos2);

        } catch (Exception ex) {
          Utiles_MensajesDialogo.mensajeAlerta("Error al obtener tipos documentos\n" + ex.getMessage());
          ex.printStackTrace();
          Logger.getLogger(jifIngresosAlmacen.class.getName()).log(Level.SEVERE, null, ex);
        }
      }
      private void llenarComboTipoMoneda() {
        this.listatipos4 = null;
        List listaTipos_cbo1 = this.cboBeanBindingTipo4.getLista();
        listaTipos_cbo1.clear();
        try
        {
          listatipos4 = Listas.getTipo_porTabla("Tipo_moneda");
          this.cboBeanBindingTipo4.setLista(listatipos4);

        } catch (Exception ex) {
          Utiles_MensajesDialogo.mensajeAlerta("Error al obtener Tipos Monedas\n" + ex.getMessage());
          ex.printStackTrace();
          Logger.getLogger(jifIngresosAlmacen.class.getName()).log(Level.SEVERE, null, ex);
        }
      }
      private void llenarComboTipoMovimiento() {
        this.listatipos3 = null;
        List listaTipos_cbo = this.cboBeanBindingTipo3.getLista();
        listaTipos_cbo.clear();
        try
        {
         listatipos3 = Listas.getTipo_porTabla("tipo_Movimiento");

        } catch (Exception ex) {
          Utiles_MensajesDialogo.mensajeAlerta("Error al obtener tipos documentos\n" + ex.getMessage());
          ex.printStackTrace();
          Logger.getLogger(jifIngresosAlmacen.class.getName()).log(Level.SEVERE, null, ex);
        }
      }
       private void llenarComboEmpresa() {
        empresas = null;
        List listaPaises_cbo = this.cboBeanBindingEmpresa1.getLista();
        listaPaises_cbo.clear();
        try
        {
         empresas = Listas.getEmpresaPrincipal();
          this.cboBeanBindingEmpresa1.setLista(empresas);
        } catch (Exception ex) {
          Utiles_MensajesDialogo.mensajeAlerta("Error al obtener empresas\n" + ex.getMessage());
          ex.printStackTrace();
          Logger.getLogger(jifIngresosAlmacen.class.getName()).log(Level.SEVERE, null, ex);
        }
      }
      private void llenarComboZonas() {
        listazonas = null;
        List listaPaises_cbo = this.cboBeanBindingZona1.getLista();
        listaPaises_cbo.clear();
        try
        {
          listazonas = Listas.getZonas();
          this.cboBeanBindingZona1.setLista(listazonas);

        } catch (Exception ex) {
          Utiles_MensajesDialogo.mensajeAlerta("Error al obtener zonas\n" + ex.getMessage());
          ex.printStackTrace();
          Logger.getLogger(jifIngresosAlmacen.class.getName()).log(Level.SEVERE, null, ex);
        }
      }
      private void llenarComboAlmacen() {
        listaalmacen = null;
        List listaPaises_cbo = this.cboBeanBindingAlmacen1.getLista();
        listaPaises_cbo.clear();
        try
        {
          this.listaalmacen = Listas.getAlmacenes();
          this.cboBeanBindingAlmacen1.setLista(listaalmacen);
        } catch (Exception ex) {
          Utiles_MensajesDialogo.mensajeAlerta("Error al obtener almacenes\n" + ex.getMessage());
          ex.printStackTrace();
          Logger.getLogger(jifIngresosAlmacen.class.getName()).log(Level.SEVERE, null, ex);
        }
      }
       private void llenarComboSubAlmacen() {
        this.listasubalmacen = null;
        List listaPaises_cbo = this.cboBeanBindingSubAlmacen1.getLista();
        listaPaises_cbo.clear();
        try
        {
          listasubalmacen = Listas.getSubalmacenes();
          this.cboBeanBindingSubAlmacen1.setLista(listasubalmacen);
        } catch (Exception ex) {
          Utiles_MensajesDialogo.mensajeAlerta("Error al obtener subalmacenes\n" + ex.getMessage());
          ex.printStackTrace();
          Logger.getLogger(jifIngresosAlmacen.class.getName()).log(Level.SEVERE, null, ex);
        }
      }
}
